package com.myblog.demo.mapper;

import com.myblog.demo.entity.MessageSessionUser;
import com.myblog.demo.entity.vo.Friend;
import com.myblog.demo.entity.vo.MessageSession;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface MessageSessionMapper {

    // 根据当前用户id获取到该用户都在哪些会话当中，返回一组sessionId
    List<Integer> getSessionIdsByUId(@Param("uid") Integer uid);

    // 根据 sessionId 来查询这个会话除了自己之外的用户
    Friend getFriendBySessionId(@Param("sessionId") Integer sessionId, int selfUserId);

    // 新增会话，返回一个会话id
    // 此次的返回值 int 是影响数据库的行数，而 sessionId通过 messageSession 获取
    Integer addMessageSession(MessageSession messageSession);

    // 判断两个用户之间是否已经存在会话了
    Integer isExistsSessionId(Integer uid1, Integer uid2);

    // 新增会话后，需要给 message_session_user 表也要新增相应会话与用户之间的记录
    int addMessageSessionUser(MessageSessionUser messageSessionUser);
}
